using System;
using System.Collections.Generic;
using System.Text;

namespace MakeIT.SGI.ERP.Entidades
{
	public class ColaboradorVO
	{
		// Impedir o uso de new para esta classe
		protected ColaboradorVO() { }

		// Cria uma instancia desta classe
		public static ColaboradorVO CreateVO()
		{
			ColaboradorVO colaborador = new ColaboradorVO();
			colaborador.idCargoVO = CargoVO.CreateVO();
			colaborador.idDeptoVO = DeptoVO.CreateVO();
			colaborador.idPessoaVO = PessoaVO.CreateVO();
			colaborador.idPessoaGVO = new ColaboradorVO();
			return colaborador;
		}
		public static ColaboradorVO CreateVO(int idColaborador)
		{
			ColaboradorVO obj = CreateVO();
			obj.idColaborador = idColaborador;
			return obj;
		}
		// Descrição amigavel do conteudo deste objeto
		public override string ToString()
		{
			return (idColaborador!=null?idColaborador.ToString():"");
		}
		// Retorna PK concatenada com ";"
		public string PKString
		{
			get { return idColaborador.ToString(); }
		}

		#region MEMBROS DA CLASSE
		public int? idCargo
		{
			get { return this._idCargo; }
			set { this._idCargo = value; 
			      if(value!=null) this.idCargoVO.idCargo = (int)value; }
		}
		private int? _idCargo;
		public int? idDepto
		{
			get { return this._idDepto; }
			set { this._idDepto = value; 
			      if(value!=null) this.idDeptoVO.idDepto = (int)value; }
		}
		private int? _idDepto;
		public int idColaborador
		{
			get { return this._idColaborador; }
			set { this._idColaborador = value; }
		}
		private int _idColaborador;
		public int idPessoa
		{
			get { return this._idPessoa; }
			set { this._idPessoa = value; 
			      if(value!=null) this.idPessoaVO.idPessoa = (int)value; }
		}
		private int _idPessoa;
		public int idPessoaG
		{
			get { return this._idPessoaG; }
			set { this._idPessoaG = value; 
			      if(value!=null) this.idPessoaGVO.idColaborador = (int)value; }
		}
		private int _idPessoaG;
		public DateTime cadastro
		{
			get { return this._Cadastro; }
			set { this._Cadastro = value; }
		}
		private DateTime _Cadastro;
		public string cadastradoPor
		{
			get { return this._CadastradoPor; }
			set { this._CadastradoPor = value; }
		}
		private string _CadastradoPor;
		public DateTime edicao
		{
			get { return this._Edicao; }
			set { this._Edicao = value; }
		}
		private DateTime _Edicao;
		public string editadoPor
		{
			get { return this._EditadoPor; }
			set { this._EditadoPor = value; }
		}
		private string _EditadoPor;
		public CargoVO idCargoVO
		{
			get { return this._idCargoVO; }
			set { this._idCargoVO = value; }
		}
		private CargoVO _idCargoVO;
		public DeptoVO idDeptoVO
		{
			get { return this._idDeptoVO; }
			set { this._idDeptoVO = value; }
		}
		private DeptoVO _idDeptoVO;
		public PessoaVO idPessoaVO
		{
			get { return this._idPessoaVO; }
			set { this._idPessoaVO = value; }
		}
		private PessoaVO _idPessoaVO;
		public ColaboradorVO idPessoaGVO
		{
			get { return this._idPessoaGVO; }
			set { this._idPessoaGVO = value; }
		}
		private ColaboradorVO _idPessoaGVO;
        public bool? ativo
        {
            get { return this._ativo; }
            set { this._ativo = value; }
        }
        private bool? _ativo;
		#endregion
	}
}
